/**
 * Nombre : PermisoPerfilAction.java 
 * Versi�n : 1.1 
 * Creaci�n : 14/11/2008 
 * Autor : Orlando Pihue Montoya 
 * Usuario : P020912 
 * Finalidad : Consulta de Perfiles de Usuario
 * Modificacion: << fecha de modificaci�n>> 
 * Autor : <<quien actualizo el archivo>> 
 * Usuario : <<c�digo de usuario modificador>> 
 * Detalle : <<descripci�n de la modificaci�n>>
 */
 
package igrupobbva.pe.sistemareniec.actions;

import igrupobbva.pe.sistemareniec.forms.OficinaForm;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.grupobbva.iici.serializable.Oficina;
import com.grupobbva.iici.service.OficinaService;
import com.grupobbva.iici.util.SpringUtils;


public class OficinaAction extends DispatchAction

{
	static Logger logger = Logger.getLogger(OficinaAction.class.getName());
	
	OficinaService oficinaService;
	 
	public ActionForward inicio(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		ActionErrors errors = new ActionErrors();
		ActionForward forward = new ActionForward();
		oficinaService =SpringUtils.getBean(request, OficinaService.class);
		
		try {			
			List<Oficina> listaOficina =  oficinaService.obtenerTodasOficinas();
			request.getSession().setAttribute("listaOficina", listaOficina);
		} catch (Exception e) {
			errors.add("name", new ActionError("id"));
		}
		if (!errors.isEmpty()) {
			saveErrors(request, errors);
			forward = mapping.findForward("error");
		} else {
			forward = mapping.findForward("ok");
		}
		return (forward);
	}
	
	public ActionForward mostrarNuevo(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		HttpSession sesion = request.getSession();
		ActionErrors errors = new ActionErrors();
		int flag =Integer.parseInt((String)sesion.getAttribute("root")) ;
		ActionForward forward = new ActionForward(); 
		
		OficinaForm oficinaForm = (OficinaForm) form;
		try { 
			
			oficinaForm.setCod_oficina("");
			oficinaForm.setNom_oficina("");
			oficinaForm.setCod_territorio("");
			request.setAttribute("method", "nuevo");
			
		} catch (Exception e) {
			errors.add("name", new ActionError("id")); 
		}
		if (!errors.isEmpty()) {
			saveErrors(request, errors);
			forward = mapping.findForward("error"); 
		} else {
			forward = mapping.findForward("nuevo"); 
		}
		return (forward);
	}
	
	public ActionForward nuevo(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		HttpSession sesion = request.getSession();
		ActionErrors errors = new ActionErrors();
		ActionForward forward = new ActionForward();
		oficinaService =SpringUtils.getBean(request, OficinaService.class);
		
		String codOficina = request.getParameter("cod_oficina");
		String nomOficina = (String)request.getParameter("nom_oficina");
		String codTerritorio = (String)request.getParameter("cod_territorio");
		

		int flag =Integer.parseInt((String) sesion.getAttribute("root")) ;
		
		Oficina oficina = new Oficina();
		
		oficina.setCod_oficina(codOficina);
		oficina.setNom_oficina(nomOficina);
		oficina.setCod_territorio(codTerritorio);
		
		
		try { 			
			oficinaService.registrar(oficina);
			request.getSession().setAttribute("listaOficina", oficinaService.obtenerTodasOficinas());	
			request.setAttribute("method", "inicio");
		} catch (Exception e) {
			errors.add("name", new ActionError("id"));
		}
		if (!errors.isEmpty()) {
			saveErrors(request, errors);
			forward = mapping.findForward("ok"); 
		} else {
			forward = mapping.findForward("ok"); 
		}
		
		return (forward);
	}
	
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		HttpSession sesion = request.getSession();
		ActionErrors errors = new ActionErrors();
		int flag =Integer.parseInt((String) sesion.getAttribute("root")) ;
		
		ActionForward forward = new ActionForward();
		oficinaService =SpringUtils.getBean(request, OficinaService.class);
		
		String codOficina= (String) request.getParameter("cod_oficina");
		try {			
			Oficina oficina=oficinaService.obtenerEntidadPorCodigo(Oficina.class, codOficina);
			oficinaService.eliminar(oficina);
			request.getSession().setAttribute("listaOficina", oficinaService.obtenerTodasOficinas());
			request.setAttribute("method", "inicio");
		} catch (Exception e) {
			errors.add("name", new ActionError("id"));
		}
		if (!errors.isEmpty()) {
			saveErrors(request, errors);
			forward = mapping.findForward("ok"); 
		} else {
			forward = mapping.findForward("ok"); 
		}
		return (forward);
	}
	
	public ActionForward mostrarEditar(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		HttpSession sesion = request.getSession();
		ActionErrors errors = new ActionErrors();
		
		ActionForward forward = new ActionForward(); 
		
		String codOficina = request.getParameter("cod_oficina");
		String nomOficina = (String)request.getParameter("nom_oficina");
		String codTerritorio = (String)request.getParameter("cod_territorio");

	
		
		OficinaForm objOficina = (OficinaForm) form;
		
		try { 

			Oficina oficina = new Oficina();
			
			objOficina.setCod_oficina(codOficina);
			objOficina.setNom_oficina(nomOficina);
			objOficina.setCod_territorio(codTerritorio);

		    request.setAttribute("method", "editar");
						
		} catch (Exception e) {
			e.printStackTrace();
			errors.add("name", new ActionError("id"));
		}
		if (!errors.isEmpty()) {
			saveErrors(request, errors);
			forward = mapping.findForward("error"); 
		} else {
			forward = mapping.findForward("nuevo"); 
		}
		return (forward);	
	}	
	
	

	
	public ActionForward editar(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		HttpSession sesion = request.getSession();
		ActionErrors errors = new ActionErrors();
		int flag =Integer.parseInt((String)sesion.getAttribute("root"));
		ActionForward forward = new ActionForward();	
		oficinaService =SpringUtils.getBean(request, OficinaService.class);
		
		String codOficina = request.getParameter("cod_oficina");
		String nomOficina = (String)request.getParameter("nom_oficina");
		String codTerritorio = (String)request.getParameter("cod_territorio");
		
		
		
		try { 		

			Oficina oficina = new Oficina();
			
			oficina.setCod_oficina(codOficina);
			oficina.setNom_oficina(nomOficina);
			oficina.setCod_territorio(codTerritorio);

			oficinaService.modificar(oficina);
			request.setAttribute("method", "inicio");
			request.getSession().setAttribute("listaOficina", oficinaService.obtenerTodasOficinas());	
			
		} catch (Exception e) {
			errors.add("name", new ActionError("id"));
		}
		if (!errors.isEmpty()) {
			saveErrors(request, errors);
			forward = mapping.findForward("ok"); 
		} else {
			forward = mapping.findForward("ok"); 
		}
		// Finish with
		return (forward);
	}
}
